#define _CRT_SECURE_NO_WARNINGS 1

//#include<iostream>
//#include<cstring>
//
//using namespace std;
//
//const int N = 100010, M = 110;
//
//int f[N][M][2];
//int n, k;
//
//int main()
//{
//    scanf("%d%d", &n, &k);
//    memset(f, -0x3f, sizeof f);
//    for (int i = 0; i <= n; i++)   f[i][0][0] = 0;
//    for (int i = 1; i <= n; i++)
//    {
//        int w;
//        scanf("%d", &w);
//        for (int j = 1; j <= k; j++)
//        {
//            f[i][j][0] = max(f[i - 1][j][0], f[i - 1][j][1] + w);
//            f[i][j][1] = max(f[i - 1][j][1], f[i - 1][j - 1][0] - w);
//        }
//    }
//
//    int res = 0;
//    for (int i = 0; i <= k; i++)   res = max(res, f[n][i][0]);
//    printf("%d\n", res);
//    return 0;
//}

//#include<iostream>
//#include<cstring>
//
//using namespace std;
//
//const int N = 100010;
//
//int f[N][2][2];
//int n;
//
//int main()
//{
//    memset(f, -0x3f, sizeof f);
//    f[0][0][1] = 0;
//    scanf("%d", &n);
//    for (int i = 1; i <= n; i++)
//    {
//        int w;
//        scanf("%d", &w);
//        f[i][1][0] = max(f[i - 1][1][0], f[i - 1][0][1] - w);
//        f[i][0][0] = f[i - 1][1][0] + w;
//        f[i][0][1] = max(f[i - 1][0][0], f[i - 1][0][1]);
//    }
//    printf("%d\n", max(f[n][0][0], f[n][0][1]));
//    return 0;
//}